In the field of data communications, it is known to use the technique of protocol layering. In protocol layering, when sending data, one layer passes a stream or sequence of data symbols (e.g. bits) to a lower layer, which in turn handles the further transmission, e.g. by passing the data to yet another lower layer, and on the receiving-side, each layer of a protocol hierarchy reassembles received data and passes it upward to a higher layer. A sending entity and receiving entity at a given layer are referred to as a sending peer and receiving peer, respectively. An example of layering is the well-known OSI model. As protocol layering is itself well known in the art, a further explanation is not necessary here.
The communication between a sending peer and a receiving peer provide a connection of the communication layer at which the sending peer and receiving peer reside. For such a connection, it is known to divide the sequence of data symbols to be transmitted into a sequence of data units on the basis of a given data unit generation scheme. It is noted that in connection with various communication protocols, data units have a variety of names, such as packet, frame, segment, block, protocol data unit, etc. The term “data unit” as used in the specification and claims is generic and covers any such division of data symbols.
This is schematically shown in FIG. 1, where a sequence of data symbols, in this case bits of 0 or 1, are placed into a sequence of data units 22. The data units comprise a header 10 and a payload section 11, where the data symbols of the sequence are placed into the payload section 11. The data units 22 form their own sequence, which is indicated by the numbering n, n+1, n+2 . . . , n being an integer. It is noted that the specific structure of a data unit 22 will depend on the specific protocol used, and the shown structure of a header and a payload is only an example, albeit a common one.
The data units 22 of the sequence are sent over a connection 12 to a receiving peer.
A more detailed example is schematically shown in FIG. 2. FIG. 2 shows a first protocol layer Lm, m being an integer, and a higher layer L(m+1). Reference numeral 24 represents a sending peer and reference numeral 25 a receiving peer. In the example of FIG. 2, the sending peer 24 receives data units 21 from the higher layer L(m+1). The higher layer data units 21 consist of data symbols, e.g. bits. In other words, in the example of FIG. 2, a sequence of data symbols to be sent is received in the form of higher layer data units. The sending peer 24 generates data units 22 from the sequence of data symbols contained in the higher layer data units 21. It is noted that in the context of data unit based communication the higher layer data units 21 are sometimes referred to as service data units (SDU) with respect to communication layer Lm, whereas the data units 22 generated by the layer Lm are referred to as protocol data units (PDU). The sending peer 24 passes the data units 22 to a lower layer L(m−1), which processes these as a stream of data symbols in accordance with the specific rules of said lower layer L(m−1), and provides received data units 22′ to the receiving peer 25 of layer Lm. From the view point of the sending peer 24 and receiving peer 25, a protocol connection 12 is established for sending the data units 22, as the protocol layer Lm is generally oblivious to the processing conducted at lower layers.
The received data units of layer Lm are referred to as 22′, in order to indicate that these data units should ideally be identical to the sent data units 22, but can contain errors. The receiving peer 25 reassembles the higher layer data units on the basis of the data symbols in the received data units 22′. In the example of FIG. 2, it thereby generates data units 21′ that are passed to the higher layer L(m+1). Depending on the specific protocol used, the data units 21′ are always fully correct copies of the sent higher layer data units 21, or may be data units that also contain errors. This is in itself known in the art and therefore does not need to be described in further detail here.
As a mechanism for improving the quality of transmission between the sending peer 24 and the receiving peer 25, it is known to let the receiving peer 25 send feedback messages 23, which arrive as messages 23′ at the receiving peer 24. From the viewpoint of the sending peer 24 and receiving peer 25 of layer Lm, these are again sent over the Lm connection 12. The reference numeral 23′ is used to indicate that the received messages 23′ may be different from the sent messages 23, e.g. due to transmission errors. These errors may or may not be correctible, e.g. with the help of redundancy information, depending on the specific protocol being used. The structure of the feedback messages and the information contained therein also depends on the specific protocol being used, as is well known in the art. As an example, the feedback messages may have the form of so-called acknowledgments (ACK), in which the correct receipt of a sent data unit 22 is acknowledged and/or the form of non-acknowledgments (NACK), where the receiving peer 25 explicitly identifies a data unit 22 that was not correctly received. It is noted that the acknowledgment messages do not necessarily have to identify the received data unit that triggered the acknowledgment, but e.g. may only identify the last correctly received data unit 22 of the sequence of data units (see FIG. 1). This leads to the phenomenon of so-called duplicate acknowledgments if the data unit following said last correctly received data unit is not correctly received, even though data units subsequent thereto are correctly received.
An example of such a feedback mechanism is the ARQ (Automatic Repeat reQuest) mechanism, which is well known and therefore does not need to be described in further detail. Another example of a feedback mechanism is that the sending peer polls the receiving peer for information on the status of received data units.
When using such a feedback mechanism, in which the feedback messages comprise information on the receipt of data units sent by the sending peer, the sending peer may keep a sender-side transmission record of data units, in which each data unit is associated with sender-side transmission status information. The type of transmission status information kept depends on the specific protocol and possibly the protocol implementation. For example, the transmission status information can simply distinguish between “correctly received” and “not correctly received”. It can also be more detailed in additionally distinguishing the status of “not correctly received” into “sent and not correctly received” and “not yet sent”. Equally further information can be recorded in association with data units, such as the number of retransmission attempts, reliability information, queuing times, time stamps, or a priority. Again this depends on the specific protocol and the specific implementation.
FIG. 5 shows a schematic representation, in which the sequence of data units are schematically ordered from left to right and from top to bottom. In the example, the marked data units 14, 15, 29, 42, 51 and 53 are associated with the status of “not correctly received”. Furthermore, in the example the data units following the ninety-first data unit are associated with the status “not sent”.
The transmission control for transmission of data units 22 over the connection 12 provided by communication layer Lm is done on the basis of such a sender-side transmission record. For example, a data unit associated with the status “not correctly received” can be retransmitted under certain conditions. The precise conditions for retransmission can vary from one protocol to another, as is known in the art.
Similar to the sender-side transmission status information, the receiving peer 25 may also keep a receiver-side transmission record of data units, in which each data unit is associated with receiver-side transmission status information. This transmission status information on the receiver-side will depend on the specific protocol and possibly the specific protocol implementation. For example, it can simply consist of distinguishing between the status of “correctly received” and the status of “not correctly received”. It can also be more detailed, and e.g. identify different degrees of errors in not correctly received data units. The receiver-side transmission record is used by the receiving peer 25 at least for reassembling the sequence of data symbols contained in the transmitted data units 22
[Problem Underlying the Invention]
In present day communication systems, it is known to perform changes in a connection provided by a given protocol layer such as the protocol layer Lm shown in the example of FIG. 2. Such changes can consist in a reconfiguration of the connection 12 provided between a given pair of peers 24, 25, or can consist in a handover to a new set of peers. Various handover situations are possible, such as an inter-system handover or an intra-system handover, as is known to a person skilled in the art. It is possible that the new peer pair to which the connection is handed over comprises the same sending peer or same receiving peer as the previous connection, but a new corresponding peer. Equally, it is possible that the new peer pair is provided by the same protocol as the previous pair, or by a different protocol of layer Lm.
In the existing technology, when such a change occurs in the connection provided by a given layer (such as the layer Lm shown in the example of FIG. 2), then the known procedures consist in flushing the send buffer and the receive buffer, waiting for further data symbols to arrive from a higher layer, and then continue the transmission on the basis of the changed connection. Due to the buffer flushing, this generally leads to data loss, which has to be recovered by mechanisms of higher layer protocols, e.g. ARQ mechanisms implemented by the layer L(m+1) or higher layers in the example of FIG. 2.
[Object of the Invention]
The object of the invention is to provide an improved way of performing a change in the transmission of a sequence of data symbols or a connection provided by a predetermined communication layer.